import tkinter as tk
from tkinter import messagebox
import hashlib
import json

# 模拟 localStorage 的功能，使用一个字典来存储数据
local_storage = {}

def save_to_local_storage(key, value):
    local_storage[key] = value
    # 可以将 local_storage 保存到文件中，这里简单模拟
    with open('local_storage.json', 'w') as f:
        json.dump(local_storage, f)

def get_from_local_storage(key):
    # 从文件中读取 local_storage 数据
    try:
        with open('local_storage.json', 'r') as f:
            data = json.load(f)
            return data.get(key)
    except FileNotFoundError:
        return None

def encrypt_and_save():
    text = entry.get()
    if text:
        # 使用 hashlib 库进行 MD5 加密
        md5_hash = hashlib.md5(text.encode('utf-8')).hexdigest()
        save_to_local_storage(md5_hash, text)
        result_label.config(text=f"加密后的 key: {md5_hash}")
        # 尝试获取存储的值
        stored_value = get_from_local_storage(md5_hash)
        if stored_value:
            messagebox.showinfo("存储的值", f"存储的值: {stored_value}")
        else:
            messagebox.showinfo("存储的值", "未找到对应的值")
    else:
        messagebox.showwarning("警告", "请输入要加密的文本")

# 创建主窗口
root = tk.Tk()
root.title("MD5 加密")

# 创建标签和输入框
label = tk.Label(root, text="请输入要加密的文本:")
label.pack(pady=10)

entry = tk.Entry(root, width=30)
entry.pack(pady=5)

# 创建按钮
button = tk.Button(root, text="加密并存储", command=encrypt_and_save)
button.pack(pady=20)

# 创建结果标签
result_label = tk.Label(root, text="")
result_label.pack(pady=10)

# 运行主循环
root.mainloop()